package com.lyz.dataStructure.algorithm.快手2020;/**
 * @Author:759057893@qq.com Lyz
 * @Date: ${Date} 17:05
 * @Description:
 **/

import java.util.*;

/*
给定一个32位int型正整数，取10进制各位数字的平方和，并不断重复这个操作。
如果某次操作完成后得到的结果是1，则返回true,否则继续执行，直到证明永远不会得到结果为1，返回false

input 19
output true

1^2+9^2 =82
8^2+2^2 = 68
6^6+8^2=100
1^2+0^2+0^2 = 1

样例 输入
2
19
7

输出
true
true
 */
public class 计算累计平方和 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int[] nums = new int[n];
        for(int i =0;i< nums.length;i++){
            nums[i] = sc.nextInt();
        }
        for(int s:nums){
            System.out.println(shu(s));
        }

    }
    public static boolean shu(int n){
        List<Integer> list = new ArrayList<>();
        list.add(n);
            while (true){
                if(n==1){
                    return true;
                }
                int m =0;
                while (n!=0){
                    m = m+ (n%10)*(n%10);
                    n=n/10;
                }
                if(list.contains(m)) return false;
                list.add(m);
                n=m;
            }
    }
}
